import java.awt.BorderLayout;
import java.awt.event.ActionEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;


/**
 * La boutique qui permet d'acheter des salades pour faire grossir ses escargots
 * (plus les escargots grossissent plus ils seront vendu chers).
 */

public class BoutiqueAchatSalade extends Boutique {
	
	private BarreDeJeu barreDeJeu;
	
	private  int NombreDeSaladeEnJeu=0;
	private  int NombreMaximumDeSalade=15;
	private  int prixSalade=5;
	
	private JPanel confirmationAchatSalade;
	private JLabel imageBoutiqueAchatSalade = new JLabel(new ImageIcon("img/AchatSalade.png"));

	/**
	 * Constructeur de la classe BoutiqueAchatSalade
	 * 
	 * @param _barreDeJeu
	 * @param _tirelire
	 */
	public BoutiqueAchatSalade(BarreDeJeu _barreDeJeu, Tirelire _tirelire) {
		super(_tirelire);
		this.barreDeJeu=_barreDeJeu;
	}

	/**
 	* pour savoir si il y a des salades dans l'environements.(pour la présence de nouriture(Yohan))	
 	*/
    public  void achatSalade() {	
    	if(verifierEtatTirelire(getPrixSalade())){//On regarder si on peut a assez d'argent dans la tirelire
    		if(getNombreDeSaladeEnJeu()<getNombreMaximumDeSalade()){//On regarde si le quota maximum de salade est atteint	    
    			setNombreDeSaladeEnJeu(getNombreDeSaladeEnJeu()+1);
    			creerSalade();
       		}
    		else{messageErreurEnvironnement();
    		}
    	}
    }
    
    /**
     * Permet de creer une salade dans le jardin
     */
    public void creerSalade(){
    	Salade salade = new Salade("Laitue",100,false,
				(int) (Math.random() * (1024-53)),(int)(Math.random() * (700-75)), 10,
				10,barreDeJeu.getEnvironnement());
		barreDeJeu.getEnvironnement().getModele().addSalade(salade);
    }
    
    /**
     * Inialisation de la fenetre qui permet de confirmer d'achat d'une salade
    */
    public void confirmerActionAchatSalade(){
    	//Configuration de la fenetre
    	this.setUndecorated(true);
    	this.setSize(150,50);
    	this.setLocation(700,300);
    	this.setTitle("Confirmer l'action ?");
    	this.toFront();
    
    	//Creation des boutons Oui et Non
    	boutonNon = new JButton(new ImageIcon("img/BoutonNON.png")); //changer image
  	    boutonOui = new JButton(new ImageIcon("img/BoutonOUI.png"));
    	
  	    //Ajout de la possibilitee d'interagir avec les boutons
		boutonOui.addActionListener(this);
		boutonNon.addActionListener(this);
		boutonOui.setToolTipText("Oui");
		boutonNon.setToolTipText("Non");
		
		//Placement des boutons et de l'image dans la fenetre
		boutonOui.setBounds(0,0,50,50);
		boutonNon.setBounds(100,0,50,50);
		imageBoutiqueAchatSalade.setBounds(50,0,50,50);
		
		//Configuration des boutons
		boutonOui.setBorderPainted(false);
		boutonOui.setOpaque(false);
		boutonOui.setContentAreaFilled(false);
		boutonNon.setBorderPainted(false);
		boutonNon.setOpaque(false);
		boutonNon.setContentAreaFilled(false);
		
		//Creation de la fentre et ajout des boutons et image
		confirmationAchatSalade = new JPanel(new BorderLayout(0,0));
		confirmationAchatSalade.add(boutonOui);
		confirmationAchatSalade.add(boutonNon);
		confirmationAchatSalade.add(imageBoutiqueAchatSalade);
		
		add(confirmationAchatSalade);
		
    } 
    
    /**
     * Affiche la fenetre permettant de confirmer l'achat d'un salade
     */
    public void afficherConfirmerActionAchatSalade(){
    	this.setVisible(true);
    }
    
    /**
     * Fonction qui permet d'interagir avec les boutons
     */
    public void actionPerformed(ActionEvent arg) {
        if (arg.getSource()==boutonOui){
        	achatSalade();
            this.setVisible(false);
          	}
    	if (arg.getSource()==boutonNon){
    		this.setVisible(false);
      	}
    }
    
  //GET&SET
    
    public  int getNombreDeSaladeEnJeu() {
    	return NombreDeSaladeEnJeu;
    }

    public void setNombreDeSaladeEnJeu(int nombreDeSaladeEnJeu) {
    	this.NombreDeSaladeEnJeu = nombreDeSaladeEnJeu;
    }

	public int getPrixSalade() {
		return prixSalade;
	}

	public void setPrixSalade(int prixSalade) {
		this.prixSalade = prixSalade;
	}

	public int getNombreMaximumDeSalade() {
		return NombreMaximumDeSalade;
	}

	public void setNombreMaximumDeSalade(int nombreMaxDeSalade) {
		this.NombreMaximumDeSalade = nombreMaxDeSalade;
	}
   
	}
